www.gusucode.com > matlab用户界面的卡尔曼滤波程序 > Kalman filter_GUI\m_files\intfromstr_dot.m

    function s=intfromstr_dot(answer)
%Distill integers from a string,dot as -1;
p=1;q=1;k=0;v=0;i=1;
l=length(answer);
while i<=l-1
    if  isnumber(answer(i)) & ~isnumber(answer(i+1))
        k=k+1;
        s(k)=str2num(answer(i));
        i=i+1;
        
    elseif isnumber(answer(i)) & isnumber(answer(i+1))
        j=i;
        while j<=l & isnumber(answer(j));
            t(p)=str2num(answer(j));
            p=p+1;
            j=j+1;
        end
        for p=length(t):-1:1
            v=v+t(q)*10^(p-1);
            q=q+1;
        end
        k=k+1;
        s(k)=v;
        i=i+length(t);
        p=1;q=1;v=0;t=0;      
    elseif answer(i)=='.'
        k=k+1;
        s(k)=-1;
        i=i+1;
        while answer(i)=='.' & i<l
            i=i+1;
        end          
        
    else
        i=i+1;
    end
       
end
if i==l
    if isnumber(answer(i))
        k=k+1;
        s(k)=str2num(answer(i));
    elseif answer(i)=='.' & l>1 & answer(i-1)~='.'
        k=k+1;
        s(k)=-1;
    elseif answer(i)=='.' & l==1
        k=k+1;
        s(k)=-1;
    end
end